define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'product_equity/index' + location.search,
                    add_url: 'product_equity/add',
                    edit_url: 'product_equity/edit',
                    del_url: 'product_equity/del',
                    multi_url: 'product_equity/multi',
                    import_url: 'product_equity/import',
                    table: 'product_attribute_price',
                }
            });

            var table = $("#table");

            // 获取URL中的product_id参数
            var urlParams = new URLSearchParams(window.location.search);
            var productId = urlParams.get('product_id');

            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',
                sortName: 'id',
                sortOrder: 'desc',
                queryParams: function (params) {
                    // 如果存在product_id参数，添加到查询参数中
                    if (productId) {
                        params.product_id = productId;
                    }
                    return params;
                },
                columns: [
                    [{
                            checkbox: true
                        },
                        {field: 'product_id', title: '商品ID', sortable: true, visible: !productId},
                        {field: 'product_name', title: '商品名称', operate: 'LIKE', visible: !productId},
                        {field: 'category_name', title: '所属分类', operate: 'LIKE'},
                        {field: 'merchant_name', title: '所属商家', operate: 'LIKE'},
                        {field: 'sales', title: '商品销量', sortable: true},
                        {field: 'stock', title: '商品库存', sortable: true},
                        {field: 'equity_price', title: '权益价格', sortable: true, formatter: function(value, row, index) {
                            return '¥' + (value || '0.00');
                        }},
                        {field: 'original_price', title: '原价', sortable: true, formatter: function(value, row, index) {
                            return '¥' + (value || '0.00');
                        }},
                        {field: 'status_text', title: '权益状态'},
                        {field: 'createtime', title: '创建时间', operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        add: function () {
            // 获取URL中的product_id参数
            var urlParams = new URLSearchParams(window.location.search);
            var productId = urlParams.get('product_id');
            
            // 如果存在product_id参数，设置到表单中并加载规格
            if (productId) {
                $("#c-product_id").val(productId);
                // 禁用product_id字段编辑
                $("#c-product_id").attr('disabled', true);
                // 自动加载商品规格
                Controller.api.loadProductSkus(productId);
            }
            
            // 绑定商品ID输入事件
            $("#c-product_id").on('blur', function() {
                var productId = $(this).val();
                if (productId) {
                    Controller.api.loadProductSkus(productId);
                } else {
                    Controller.api.clearSkuList();
                }
            });
            
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($('form[role=form]'), function(data, ret){
                    // 成功提交后的回调函数
                    var index = parent.Layer.getFrameIndex(window.name);
                    parent.Layer.close(index);
                    parent.$(".btn-refresh").trigger("click");
                });
            },
            
            // 加载商品规格
            loadProductSkus: function(productId) {
                if (!productId) return;
                
                // 显示加载状态
                $("#sku-list").hide();
                $("#product-info").hide();
                $("#single-price").show();
                
                $.ajax({
                    url: 'product_equity/getProductSkus',
                    type: 'POST',
                    data: {product_id: productId},
                    dataType: 'json',
                    success: function(response) {
                        if (response.code === 1) {
                            var data = response.data;
                            var product = data.product;
                            var skus = data.skus;
                            
                            // 显示商品信息
                            $("#product-name").text(product.name || '商品名称');
                            var auditStatusText = '';
                            switch(product.audit_status) {
                                case 0:
                                    auditStatusText = ' | 审核状态: 审核中';
                                    break;
                                case 1:
                                    auditStatusText = ' | 审核状态: 已通过';
                                    break;
                                case 2:
                                    auditStatusText = ' | 审核状态: 未通过';
                                    break;
                                default:
                                    auditStatusText = ' | 审核状态: 异常';
                                    break;
                            }
                            $("#product-desc").text('商品ID: ' + product.id + ' | 分类: ' + (product.category_name || '未分类') + auditStatusText);
                            $("#product-info").show();
                            
                            if (skus && skus.length > 0) {
                                // 有规格，显示规格列表
                                Controller.api.renderSkuList(skus);
                                $("#sku-list").show();
                                $("#single-price").hide();
                            } else {
                                // 无规格，显示单价格输入
                                $("#sku-list").hide();
                                $("#single-price").show();
                            }
                        } else {
                            Toastr.error(response.msg || '获取商品规格失败');
                            Controller.api.clearSkuList();
                        }
                    },
                    error: function() {
                        Toastr.error('网络错误，请重试');
                        Controller.api.clearSkuList();
                    }
                });
            },
            
            // 渲染规格列表
            renderSkuList: function(skus) {
                var tbody = $("#sku-tbody");
                tbody.empty();
                
                $.each(skus, function(index, sku) {
                    var statusClass = sku.has_equity ? 'text-success' : 'text-muted';
                    var statusText = sku.has_equity ? '已配置' : '未配置';
                    var priceValue = sku.equity_price || '';
                    var disabled = sku.has_equity ? 'disabled' : '';
                    
                    var row = '<tr>' +
                        '<td>' + sku.sku_name + '</td>' +
                        '<td>¥' + (sku.price || '0.00') + '</td>' +
                        '<td>' + (sku.stock || 0) + '</td>' +
                        '<td>' +
                            '<input type="number" class="form-control" name="sku_prices[' + sku.id + ']" ' +
                            'value="' + priceValue + '" step="0.01" min="0" placeholder="请输入权益价格" ' + disabled + '>' +
                        '</td>' +
                        '<td><span class="' + statusClass + '">' + statusText + '</span></td>' +
                    '</tr>';
                    
                    tbody.append(row);
                });
            },
            
            // 清空规格列表
            clearSkuList: function() {
                $("#product-info").hide();
                $("#sku-list").hide();
                $("#single-price").show();
                $("#sku-tbody").empty();
            }
        }
    };
    return Controller;
});